﻿#region Using Statements
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
#endregion

namespace StarFox.ScreenComponents
{
    /// <summary>
    /// Defines an interface with basic properties needed to implement any asteroid in an asteroid field.
    /// </summary>
    public interface IAsteroid
    {
        #region Properties

        /// <summary>
        /// Gets the model index used to draw the asteroid.
        /// </summary>
        int Index { get; }

        /// <summary>
        /// Gets or sets the position of the asteroid.
        /// </summary>
        Vector3 Position { get; set; }

        /// <summary>
        /// Gets or sets the movement direction and velocity of the asteroid.
        /// </summary>
        Vector3 Movement { get; set; }

        /// <summary>
        /// Gets the world matrix used to draw the asteroid.
        /// </summary>
        Matrix World { get; }

        #endregion

        #region Methods

        /// <summary>
        /// Called when the asteroid needs to be updated.
        /// </summary>
        void Update();

        #endregion
    }
}
